// 定义验证规则
// * string() 值必须是字符串
// * alphanum() 值只能是包含 a-zA-Z0-9 的字符串
// * min(length) 最小长度
// * max(length) 最大长度
// * required() 值是必填项，不能为 undefined
// * pattern(正则表达式) 值必须符合正则表达式的规则
// 导入定义验证规则的包
const joi = require('joi')

// 定义用户名和密码的验证规则
const username = joi.string().alphanum().min(1).max(10).required()
const password = joi.string().pattern(/^[\S]{6,12}$/).required()
// 定义验证注册和登录表单数据的规则对象
exports.reg_login_schema= {
  body:{
    username,
    password
  }
}
// 定义更新用户信息的表单规则
const id = joi.number().integer().min(1).required()
const nickname = joi.string().required()
const user_email = joi.string().email().required()
// 定义用户头像的base64格式的验证规则
// dataUri()这个方法验证图片字符串是不是base64格式的
const avatar = joi.string().dataUri().required()
// 向外暴漏 更新用户基本信息的验证规则
exports.update_userinfo_schema= {
  // 需要对req.body里面的对象进行验证
  body:{
    id,
    nickname,
    email:user_email
  }
}

// 更新密码的规则对象
exports.update_password_schema = {
  body: {
    oldPwd:password,
    newPwd:joi.not(joi.ref('oldPwd')).concat(password) // 新密码的值不要和旧密码保持一致,并且验证规则和密码一样
  }
}
// 更换头像的规则对象
exports.update_avatar_schema = {
  body:{
    avatar
  }
}